import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;


/**
 *
 * 对应表名: ${tableName}
 * 时间： ${dateTime}
 */
@Mapper
public interface ${daoName}{

    /**
     *
     * 插入一条数据
     * 时间： ${dateTime}
     */
    boolean insert(${poName} ${poVar});


    /**
     * 更新 ${poName} 对象中不为空的字段， 更新条件是 ${poName}.${primaryNameLow} ， 该属性不能为空
     * 时间： ${dateTime}
     * @return 返回更新的条数
     */
    int updateBy${primaryNameUpper}Selective(${poName} ${poVar});


    /**
    * 根据 ${primaryNameLow} 作为条件来删除表中的数据
    * 时间： ${dateTime}
    * @param ${primaryNameLow} ${primaryColumnComment} : 对应 ${tableName} 表中的 ${primaryColumnName} ， 不能为空
    * @return 返回删除的条数
    */
    int deleteBy${primaryNameUpper}(@Param("${primaryNameLow}") ${primaryTypeName} ${primaryNameLow});


    /**
    * 根据 ${primaryNameLow} 来查询表数据 ， 表名 ${tableName}
    * 时间： ${dateTime}
    * @param ${primaryNameLow} ${primaryColumnComment} : 对应 ${tableName} 表中的 ${primaryColumnName} ， 不能为空
    * @return 返回单条数据
    */
    ${poName} selectBy${primaryNameUpper}(@Param("${primaryNameLow}") ${primaryTypeName} ${primaryNameLow});


}